package cn.iocoder.yudao.module.system.util.gugu;

import cn.iocoder.yudao.framework.common.pojo.CommonResult;

/**
 * 响应工具类
 * 提供类型安全的 CommonResult 创建方法，解决泛型类型推断问题
 */
public class ResponseUtils {

    /**
     * 创建成功响应
     */
    public static <T> CommonResult<T> success(T data) {
        return CommonResult.success(data);
    }

    /**
     * 创建错误响应
     */
    public static <T> CommonResult<T> error(int code, String message) {
        return CommonResult.error(code, message);
    }

    /**
     * 创建错误响应（默认500状态码）
     */
    public static <T> CommonResult<T> error(String message) {
        return CommonResult.error(500, message);
    }

    /**
     * 创建超时错误响应
     */
    public static <T> CommonResult<T> timeout(String message) {
        return CommonResult.error(408, message);
    }

    /**
     * 创建服务器错误响应
     */
    public static <T> CommonResult<T> serverError(String message) {
        return CommonResult.error(500, message);
    }

    /**
     * 创建参数错误响应
     */
    public static <T> CommonResult<T> badRequest(String message) {
        return CommonResult.error(400, message);
    }

    /**
     * 创建未找到错误响应
     */
    public static <T> CommonResult<T> notFound(String message) {
        return CommonResult.error(404, message);
    }

    /**
     * 创建请求过于频繁错误响应
     */
    public static <T> CommonResult<T> tooManyRequests(String message) {
        return CommonResult.error(429, message);
    }
}
